home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 20 / Cream of the Crop 20 (Terry Blount) (1996).iso / program / skeleton.zip / StatBar.asm < prev    next >
Assembly Source File  |  1996-06-02  |  2KB  |  69 lines

  1.         TITLE    Status Bar
  2.         INCLUDE    COMMON.INC
  3.  
  4. hWnd        TEXTEQU    <[ebp+08h]>
  5. uMsg        TEXTEQU    <[ebp+0Ch]>
  6. wParam        TEXTEQU    <[ebp+10h]>
  7. lParam        TEXTEQU    <[ebp+14h]>
  8.  
  9.  
  10.         .DATA?
  11. hStatusBar    HWND    ?
  12. szStatusBar    SBYTE    40h DUP (?)
  13. bSimpleMode    DWORD    ?        ;Simple Status Bar TRUE/FALSE
  14.  
  15.  
  16.         .CODE
  17. CreateSBar    PROC    STDCALL
  18.         INVOKE    CreateStatusWindow, WS_CHILD + WS_BORDER + WS_VISIBLE,\
  19.             ADDR szStatusBar, hWnd, ID_STATUSBAR
  20.         mov    hStatusBar,eax
  21.         ret
  22. CreateSBar    ENDP
  23.  
  24.  
  25. MsgWM_MENUSELECT PROC    STDCALL
  26.         xor    eax,eax        ;Clear Status Text
  27.         mov    DWORD PTR szStatusBar,eax
  28.  
  29.         mov    eax,wParam    ;fuFlags = HIWORD wParam
  30.         shr    eax,10h
  31.  
  32.         cmp    eax,0FFFFh
  33.         jne    caseMENUOPEN
  34.         mov    ecx,lParam    ;hMenu = lParam
  35.         test    ecx,ecx        ;NULL (ecx=0) if menu is closed
  36.         jnz    caseMENUOPEN
  37.         mov    bSimpleMode,FALSE
  38.         INVOKE    SendMessage, hStatusBar, SB_SIMPLE, FALSE, 0
  39.         jmp    caseRETURN
  40.  
  41. caseMENUOPEN:    test    eax,MFT_SEPARATOR
  42.         jnz    caseUPDATE
  43.         test    eax,MF_POPUP
  44.         jnz    casePOPUP
  45.         jmp    caseCOMMAND
  46.  
  47. casePOPUP:    test    eax,MF_SYSMENU    ;System Menu
  48.         jnz    caseSYSMENU
  49.         mov    eax,wParam    ;Menu Index = LOWORD wParam
  50.         add    eax,IDM_FILEMENU
  51.         jmp    caseSTRING
  52.  
  53. caseSYSMENU:    mov    eax,IDS_SYSMENU
  54.         jmp    caseSTRING
  55.  
  56. caseCOMMAND:    mov    eax,wParam    ;CommandID = LOWORD wParam
  57.         and    eax,0FFFFh    ;eax = StatusBar StringID
  58. caseSTRING:    INVOKE    LoadString, hInst, eax, ADDR szStatusBar, 40h
  59.  
  60. caseUPDATE:    mov    eax,TRUE
  61.         cmp    bSimpleMode,eax    ;eax=TRUE
  62.         je    caseDISPLAY
  63.         mov    bSimpleMode,eax    ;eax=TRUE
  64.         INVOKE    SendMessage, hStatusBar, SB_SIMPLE, eax, 0h
  65. caseDISPLAY:    INVOKE    SendMessage, hStatusBar, SB_SETTEXT, 0FFh + SBT_NOBORDERS, ADDR szStatusBar
  66. caseRETURN:    ret
  67. MsgWM_MENUSELECT ENDP
  68.  
  69.         END